package com.maibow.service.members;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.maibow.dao.DaoSupport;
import com.maibow.entity.Page;
import com.maibow.util.PageData;

/**
 * 
 * 脉博网络后台管理系统
 * 包名：com.maibow.service.members
 * 文件名：MembersService.java
 * 作者: 吴比(Zengzhuo)
 * 时间：2015年4月2日-上午9:11:28
 * Copyright@ 2015湖南脉博网络科技有限公司-版权所有
 *
 */
@Service("membersService")
public class MembersService {

    @Resource(name = "daoSupport")
    private DaoSupport dao;

    /*
     * 新增
     */
    public void save(PageData pd) throws Exception {
        dao.save("MemebersMapper.save", pd);
    }

    /**
     * 
     * saveMember(这里用一句话描述这个方法的作用)
     * (这里描述这个方法适用条件 – 可选)
     * 标记：@param pd
     * 标记：@return
     * 标记：@throws Exception
     * 返回值：Object
     * 作者：吴比(Wubi)
     * 
     * @exception
     * @since 1.0.0
     */
    public Object saveMember(PageData pd) throws Exception {
        return dao.save("MemebersMapper.save", pd);
    }

    /*
     * 删除
     */
    public void delete(PageData pd) throws Exception {
        pd.put("m_id", Integer.valueOf(pd.getString("m_id")));
        dao.delete("MemebersMapper.delete", pd);
    }

    /*
     * 修改
     */
    public void edit(PageData pd) throws Exception {
        pd.put("m_id", Integer.valueOf(pd.getString("m_id")));
        dao.update("MemebersMapper.edit", pd);
    }

    /**
     * 
     * editVerifyState(这里用一句话描述这个方法的作用)
     * (这里描述这个方法适用条件 – 可选)
     * 标记：@param pd
     * 标记：@throws Exception
     * 返回值：void
     * 作者：吴比(Wubi)
     * 
     * @exception
     * @since 1.0.0
     */
    public void editVerifyState(PageData pd) throws Exception {
        pd.put("m_id", Integer.valueOf(pd.getString("m_id")));
        dao.update("MemebersMapper.editVerifyState", pd);
    }

    /*
     * 列表
     */
    public List<PageData> list(Page page) throws Exception {
        return (List<PageData>) dao.findForList("MemebersMapper.datalistPage", page);
    }

    /*
     * 列表(全部)
     */
    public List<PageData> listAll(PageData pd) throws Exception {
        return (List<PageData>) dao.findForList("MemebersMapper.listAll", pd);
    }

    /*
     * 通过id获取数据
     */
    public PageData findById(PageData pd) throws Exception {
        pd.put("m_id", Integer.valueOf(pd.getString("m_id")));
        return (PageData) dao.findForObject("MemebersMapper.findById", pd);
    }

    /**
     * 
     * findByMobile(这里用一句话描述这个方法的作用)
     * (这里描述这个方法适用条件 – 可选)
     * 标记：@param pd
     * 标记：@return
     * 标记：@throws Exception
     * 返回值：PageData
     * 作者：吴比(Wubi)
     * 
     * @exception
     * @since 1.0.0
     */
    public PageData findByMobile(PageData pd) throws Exception {
        return (PageData) dao.findForObject("MemebersMapper.findByMobile", pd);
    }

    /**
     * 
     * findMarketByMID(这里用一句话描述这个方法的作用)
     * (这里描述这个方法适用条件 – 可选)
     * 标记：@param pd
     * 标记：@return
     * 标记：@throws Exception
     * 返回值：PageData
     * 作者：吴比(Wubi)
     * 
     * @exception
     * @since 1.0.0
     */
    public PageData findMarketByMID(PageData pd) throws Exception {
        return (PageData) dao.findForObject("MemebersMapper.findMarketByMID", pd);
    }

    /*
     * 批量删除
     */
    public void deleteAll(String[] ArrayDATA_IDS) throws Exception {
        dao.delete("MemebersMapper.deleteAll", ArrayDATA_IDS);
    }

    /**
     * @param pd
     * @return
     */
    public Object findMobileCount(PageData pd) {
        try {
            return (PageData) dao.findForObject("MemebersMapper.findMobileCount", pd);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * @param page
     * @return
     * @throws Exception
     */
    public List<PageData> listByMarket(Page page) throws Exception {
        return (List<PageData>) dao.findForList("MemebersMapper.listByMarketdatalistPage", page);
    }

    public List<PageData> listByMarketPageData(PageData pageData) throws Exception {
        return (List<PageData>) dao.findForList("MemebersMapper.listByMarketPageData", pageData);
    }

    /**
     * @param pd
     * @throws Exception
     */
    public void editByMarket(PageData pd) throws Exception {
        pd.put("m_id", Integer.valueOf(pd.getString("m_id")));

        if (pd.getString("operatorType").equals("1")) {
            pd.put("type_name", "营销经理");
            pd.put("type_value", Integer.valueOf("100"));

            // 插入
            dao.update("MemebersMapper.saveByMarket", pd);
        } else {
            // 删除
            dao.update("MemebersMapper.deleteByMarket", pd);
        }
    }

    public PageData findMemberMidByOpenId(PageData pateData) throws Exception {
        return (PageData) dao.findForObject("MemebersMapper.findMemberMidByOpenId", pateData);
    }

    /**
     * 
     * updateWallet(这里用一句话描述这个方法的作用)
     * (这里描述这个方法适用条件 – 可选)
     * 标记：@param pageData
     * 标记：@throws Exception
     * 返回值：void
     * 作者：吴比(Wubi)
     * 
     * @exception
     * @since 1.0.0
     */
    public void updateWallet(PageData pageData) throws Exception {
        dao.update("MemebersMapper.updateWallet", pageData);
    }

    /**
     * 
     * saveMemberPropertieChgLog(这里用一句话描述这个方法的作用)
     * (这里描述这个方法适用条件 – 可选)
     * 标记：@param pageData
     * 标记：@throws Exception
     * 返回值：void
     * 作者：吴比(Wubi)
     * 
     * @exception
     * @since 1.0.0
     */
    public void saveMemberPropertieChgLog(PageData pageData) throws Exception {
        dao.save("MemebersMapper.saveMemberPropertieChgLog", pageData);
    }

    /**
     * 
     * findMemberWalletByMid(这里用一句话描述这个方法的作用)
     * (这里描述这个方法适用条件 – 可选)
     * 标记：@param pateData
     * 标记：@return
     * 标记：@throws Exception
     * 返回值：PageData
     * 作者：吴比(Wubi)
     * 
     * @exception
     * @since 1.0.0
     */
    public PageData findMemberWalletByMid(PageData pateData) throws Exception {
        return (PageData) dao.findForObject("MemebersMapper.findMemberWalletByMid", pateData);
    }
}
